package com.campusbackend.service;

import com.campusbackend.entity.Teachers;
import com.campusbackend.entity.vo.TeacherRegisterVO;
import com.campusbackend.entity.vo.TeacherListVO;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 教师表 服务类
 * </p>
 *
 * @author yezi
 * @since 2025-07-26
 */
public interface TeachersService extends IService<Teachers> {

    /**
     * 获取所有教师列表
     * @return 教师列表
     */
    List<TeacherListVO> getAllTeachers();

    /**
     * 根据工号查找教师
     * @param employeeId 工号
     * @return 教师信息
     */
    Teachers findByEmployeeId(String employeeId);

    /**
     * 教师注册
     * @param registerVO 注册信息
     * @return 注册结果消息
     */
    String registerTeacher(TeacherRegisterVO registerVO);

    /**
     * 检查工号是否已存在
     * @param employeeId 工号
     * @return true-已存在，false-不存在
     */
    boolean isEmployeeIdExists(String employeeId);

    /**
     * 根据工号或姓名搜索教师
     * @param keyword 搜索关键词（工号或姓名）
     * @return 教师列表
     */
    List<TeacherListVO> searchTeachers(String keyword);

    // 添加以下方法声明
    boolean isIdCardExists(String idCard);
    boolean isPhoneExists(String phone);
    boolean isEmailExists(String email);

    /**
     * 更新教师基本信息
     * @param employeeId 工号
     * @param phone 手机号
     * @param email 邮箱
     * @param professionalTitle 专业职位
     * @param idCard 身份证号
     * @return 更新结果消息
     */
    String updateBasicInfo(String employeeId, String phone, String email, String professionalTitle, String idCard);

    /**
     * 更新教师个人主页
     * @param employeeId 工号
     * @param personalHomepage 个人主页地址
     * @return 更新结果消息
     */
    String updatePersonalHomepage(String employeeId, String personalHomepage);
}
